// app.js
App({
  globalData: {
    isLoading: false // 用于控制全局 Loading 状态
  },

  onLaunch() {
    // 自动登录
    // this.autoLogin();
  },

  autoLogin() {
    return new Promise((resolve, reject) => {
      // 如果已经在加载中，直接返回
      if (this.globalData.isLoading) {
        return;
      }

      this.globalData.isLoading = true; // 设置 Loading 状态为 true

      const accessToken = wx.getStorageSync('access_token');
      if (!accessToken) {
        this.globalData.isLoading = false;
        reject(); // 拒绝 Promise
        return;
      }

      // 获取微信登录的 js_code
      wx.login({
        success: (res) => {
          if (res.code) {
            // 调用自动登录 API
            wx.request({
              url: 'https://developer.qlist.cn/idrm/wxapi/auth/tokens/sdlh',
              method: 'POST',
              header: {
                'Content-Type': 'application/json',
              },
              data: {
                js_code: 'IWIVUDYfJG0g8HQtjToplP0vPStW2dBp' // 将登录时获得的 code 传入
              },
              success: (response) => {
                const {
                  code,
                  data
                } = response.data;
                console.log(data);
                // 成功登录的回调
                if (code === 0) {
                  // 存储 access_uid 和 access_token 到本地
                  if (data.access_uid && data.access_token) {
                    wx.setStorageSync('access_uid', data.access_uid);
                    wx.setStorageSync('access_token', data.access_token);
                    console.log('自动登录成功，用户信息已储存');


                    resolve(); // 解析 Promise
                  } else {
                    console.log('未绑定账号，需手动登录');
                    this.globalData.isLoading = false; // 隐藏 Loading
                    reject('未绑定账号'); // 拒绝 Promise
                  }
                } else {
                  console.log('登录失败：', response.data.message);
                  this.globalData.isLoading = false; // 隐藏 Loading
                  reject(response.data.message); // 拒绝 Promise
                }
              },
              fail: (err) => {
                console.error('请求失败：', err);
                this.globalData.isLoading = false; // 隐藏 Loading
                reject('请求失败'); // 拒绝 Promise
              }
            });
          } else {
            console.error('获取微信登录code失败：', res.errMsg);
            this.globalData.isLoading = false; // 隐藏 Loading
            reject('获取微信登录code失败'); // 拒绝 Promise
          }
        },
        fail: (err) => {
          console.error('自动登录失败：', err);
          this.globalData.isLoading = false; // 隐藏 Loading
          reject('自动登录失败'); // 拒绝 Promise
        }
      });
    });
  }
});